package ar.edu.uade.centroDistribucion.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ar.edu.uade.centroDistribucion.bussinesDelegate.BusinessDelegate;
import ar.edu.uade.centroDistribucion.valueObjects.EnvTVO;
import ar.edu.uade.centroDistribucion.valueObjects.EnvioPendienteResultadoVO;
import ar.edu.uade.centroDistribucion.valueObjects.VistaEnvTPendienteVO;

/**
 * Servlet implementation class for Servlet: ReposicionArticuloFabrica
 *
 */
 public class ReposicionArticuloFabrica extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
   
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public ReposicionArticuloFabrica() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("DOGET");
		String pagina;
		try {
			BusinessDelegate facade = new BusinessDelegate();
			List<VistaEnvTPendienteVO> pedidosPendientes = facade.IniciarEnvioPendientes();
			request.setAttribute("Lista", pedidosPendientes);
			pagina = "/pages/RepAF.jsp";
			getServletConfig().getServletContext().getRequestDispatcher(pagina).forward(request,response);			
		} catch (Exception e) {
			// TODO: handle exception
			getServletConfig().getServletContext().getRequestDispatcher("/Error.html").forward(request,response);
		}
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("DOPOST");
		String pagina;
		String envT;
		String referencia;
		String cantidadEnviar;
		BusinessDelegate facade;
		List<EnvioPendienteResultadoVO> lista;
		EnvioPendienteResultadoVO envioPendiente;
		try {
			facade = new BusinessDelegate();
			pagina = "/pages/RepAFGenerada.jsp";
			//Obtengo la cantidad de Items
			int cant = Integer.parseInt(request.getParameter("Cant").toString());
			if (cant == 0  ) {
				System.out.println("No hay Items pendientes de pedido a fabricacion");				
			} else {	
				lista = new ArrayList<EnvioPendienteResultadoVO>();
				for (int i = 0; i < cant; i++) {
					//envT referencia cantidadEnviar
					envioPendiente = new EnvioPendienteResultadoVO();
					envT = "envT" +i;
					referencia = "referencia" +i;
					cantidadEnviar = "cantidadEnviar" +i;
					System.out.println("Envio:"+request.getParameter(envT));
					System.out.println("Articulo:"+request.getParameter(referencia));
					System.out.println("Cantidad:"+request.getParameter(cantidadEnviar));
					
					envioPendiente.setCantidad(Integer.parseInt(request.getParameter(cantidadEnviar)));
					envioPendiente.setEnvioId(Integer.parseInt(request.getParameter(envT)));
					envioPendiente.setReferencia(request.getParameter(referencia).trim());
					lista.add(envioPendiente);
				}
				facade.ProcesarEnviosPendientes(lista);				
			}
			getServletConfig().getServletContext().getRequestDispatcher(pagina).forward(request,response);
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
			//getServletConfig().getServletContext().getRequestDispatcher("/Error.html").forward(request,response);
		}
		
		
	}   	  	    
}